<?php


namespace app\utils\redis;


use think\facade\Env;

/**
 * Redis单例封装
 * Class RedisCache
 * @package app\utils
 */
class RedisObj
{
    const TOKEN_DB = 0; // 保存Token的库
    const STATISTICS_DB = 1; // 统计数量(id=>Set(IP))

    const DAY_SECOND = 86400; // 一天多少秒

    //创建静态私有的变量保存该类对象
    static private $instance;

    //防止使用new直接创建对象
    private function __construct()
    {
    }

    //防止使用clone克隆对象
    private function __clone()
    {
    }

    // 暴露单例
    static public function getInstance(int $db)
    {
        //判断$instance是否是RedisCache的对象，不是则创建
        if (!self::$instance instanceof self) {
            $redis = new \Redis();
            if(!Env::get('app_debug')){
                $redisHost = Env::get('redis.host', '127.0.0.1');
                $redisPort = Env::get('redis.port', 6379);
                $redisPwd = Env::get('redis.password', 'Ps570779284.');
                $redis->connect($redisHost, $redisPort);
                $redis->auth($redisPwd);
            }else{
                $redis->connect('/Applications/MAMP/tmp/redis.sock');
            }
            self::$instance = $redis;
        }
        self::$instance->select($db);
        return self::$instance;
    }
}